package com.beloteGame.domain;

import com.beloteGame.Enums.Color;

/**
 * <br>
 * <br>
 * Copyright : Copyright (c) 2012. <br>
 * <br>
 * Société : BeloteFree
 * 
 * @author PITH
 * @version $Revision: 1.0 $ - $Date: 22 mai 2012 $
 */
public interface Card extends Comparable<Card> {

    /**
     * Returns the value of the card.
     * 
     * @return the value
     */
    int getValue();

    /**
     * Sets the value of the card.
     * 
     * @param cardValue the value of the card
     * @throws Exception if the card is lower than 1 or greatter than 13
     */
    void setValue(int cardValue) throws Exception;

    /**
     * Returns the color of the card.
     * 
     * @return the color
     */
    Color getColor();

    /**
     * Sets the color of the card.
     * 
     * @param cardColor the color of the card
     */
    void setColor(Color cardColor);

    /**
     * Returns true if it's a trump card, false otherwise.
     * 
     * @return true if it's a trump card, false otherwise
     */
    boolean isTrumpCard();
}
